package ga;

import java.util.ArrayList;
import java.util.Random;

import run.Utility;

public class Offspring {



	public static void Eletism(int tamanhoPopulacao, ArrayList<Individual> filhos, 
			ArrayList<Individual> population){
		while (population.size() != tamanhoPopulacao){
			population.add(filhos.remove(0));
		}
	}

	public static void Roulette (int tamanhoPopulacao, ArrayList<Individual> filhos, 
			ArrayList<Individual> population){
		
		double[] roleta;
		int vencedorRoleta;
		while (population.size() != tamanhoPopulacao){
			
			roleta = Utility.criacaoRoleta(filhos);
			vencedorRoleta = Utility.vencedorRoleta(roleta);
			population.add(filhos.remove(vencedorRoleta));
		}
	}

	public static void Tournament (int tamanhoPopulacao, ArrayList<Individual> filhos, 
			ArrayList<Individual> population){
				
		Random random = new Random();
		Individual i1;
		Individual i2;

		while (population.size() != tamanhoPopulacao){
			
			i1 = filhos.get(random.nextInt(filhos.size()-1));
			i2 = filhos.get(random.nextInt(filhos.size()-1));
			
			
			if (i1.getFitness() <= i2.getFitness()){
				population.add(i1);
			}
			else{
				population.add(i2);
			}
			
		}
	}
	


}
